import express from 'express';
import { createDBConnection } from '../runtime/db.js';
import { createRouters } from '../runtime/routerFactory.js';

export function smartCRUDPlugin(config) {
  return {
    name: 'smart-crud',
    config: () => ({
      resolve: {
        alias: {
          path: 'path-browserify'
        }
      },
      define: {
        'process.env': JSON.stringify(process.env)
      }
    }),
    configureServer(server) {
      // 创建数据库连接
      const db = createDBConnection(config);
      
      // 创建 Express 应用
      const app = express();
      app.use(express.json());
      
      // 创建路由
      const router = createRouters(db, config.tables);
      app.use('/api', router);
      
      // 挂载到 Vite 开发服务器
      server.middlewares.use(app);
      console.log('Smart CRUD API 已挂载到 Vite 开发服务器');
    }
  };
}